<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <link type="text/css" rel="stylesheet" href="http://repo.bfw.wiki/bfwrepo/css/font-awesome-4.7.0/css/font-awesome.min.css">
    <meta http-equiv="expires" content="0">
    <title>登录界面</title>
    <style>
        body {
            -webkit-perspective: 800px;
            perspective: 800px;
            height: 100vh;
            margin: 0;
            overflow: hidden;
            font-family: 'Gudea', sans-serif;
            background: #214d7c;
            /* Old browsers */
            /* FF3.6+ */

            /* W3C */
            filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#EA5C54 ', endColorstr='#bb6dec',GradientType=1 );
            /* IE6-9 fallback on horizontal gradient */
        }
        body ::-webkit-input-placeholder {
            color: #b3b4b4;
        }
        body .authent {
            box-shadow: 0px 20px 30px 3px rgba(0, 0, 0, 0.55);
            display: none;
            background: #35394a;
            /* Old browsers */
            /* FF3.6+ */

            /* Chrome10+,Safari5.1+ */
            /* Opera 11.10+ */
            /* IE10+ */
            background: linear-gradient(230deg, rgba(53, 57, 74, 0) 0%, rgb(0, 0, 0) 100%);
            /* W3C */
            filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='rgba(53, 57, 74, 0)', endColorstr='rgb(0, 0, 0)',GradientType=1 );
            /* IE6-9 fallback on horizontal gradient */
            position: absolute;
            left: 0;
            right: 90px;
            margin: auto;
            width: 100px;
            color: white;
            text-transform: uppercase;
            letter-spacing: 1px;
            text-align: center;
            padding: 20px 70px;
            top: 200px;
            bottom: 0;
            height: 70px;
            opacity: 0;
        }
        body .authent p {
            text-align: center;
            color: white;
        }
        body .success {
            display: none;
            color: #d5d8e2;
        }
        body .success p {
            font-size: 14px;
        }
        body p {
            color: #D3D7F7;
            font-size: 10px;
            text-align: left;
        }
        body .testtwo {
            left: -320px !important;
        }
        body .test {
            box-shadow: 0px 20px 30px 3px rgba(0, 0, 0, 0.55);
            pointer-events: none;
            top: -100px !important;
            -webkit-transform: rotateX(70deg) scale(0.8) !important;
            transform: rotateX(70deg) scale(0.8) !important;
            opacity: .6 !important;
            -webkit-filter: blur(1px);
            filter: blur(1px);
        }
        body .login
        {
            box-shadow: -15px 15px 15px rgba(6, 17, 47, 0.7);
            opacity: 1;
            top: 20px;
            -webkit-transition-timing-function: cubic-bezier(0.68, -0.25, 0.265, 0.85);
            -webkit-transition-property: -webkit-transform,opacity,box-shadow,top,left;
            transition-property: transform,opacity,box-shadow,top,left;
            -webkit-transition-duration: .5s;
            transition-duration: .5s;
            -webkit-transform-origin: 161px 100%;
            -ms-transform-origin: 161px 100%;
            transform-origin: 161px 100%;
            -webkit-transform: rotateX(0deg);
            transform: rotateX(0deg);
            position: relative;
            width: 290px;
            /*border-top: 2px solid #D8312A;*/
            height: 300px;
            position: absolute;
            left: 0;
            right: 0;
            margin: auto;
            top: 0;
            bottom: 0;
            padding: 80px 40px 40px 40px;
            background: #35394a;
            /* Old browsers */
            /* FF3.6+ */
            background: -webkit-gradient(linear, left bottom, right top, color-stop(0%, #35394a), color-stop(100%, rgb(0, 0, 0)));
            /* Chrome,Safari4+ */
            background: -webkit-linear-gradient(230deg, rgba(53, 57, 74, 0) 0%, rgb(0, 0, 0) 100%);
            /* Chrome10+,Safari5.1+ */
            /* Opera 11.10+ */
            /* IE10+ */
            background: linear-gradient(230deg, rgba(53, 57, 74, 0) 0%, rgb(0, 0, 0) 100%);
            /* W3C */
            filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='rgba(53, 57, 74, 0)', endColorstr='rgb(0, 0, 0)',GradientType=1 );
            /* IE6-9 fallback on horizontal gradient */
        }
        body .login .validation {
            position: absolute;
            z-index: 1;
            right: 10px;
            top: 14px;
            opacity: 0;
        }
        body .login .disclaimer {
            position: absolute;
            bottom: 20px;
            left: 35px;
            width: 300px;
        }
        body .login_title {
            color: #D3D7F7;
            height: 60px;
            font-size: 23px;
            text-align: center;
        }
        body .login_fields {
            height: 208px;
            position: absolute;
            left: 15px;
        }
        body .disclaimer p {
            text-align: center;
            font-size: 13px;
        }
        body .login_fields .icon {
            position: absolute;
            z-index: 1;
            left: 36px;
            top: 14px;
            opacity: .5;
        }
        body .login_fields .icon img {
            width: 16px;
        }
        body .login_fields input[type='password'],body .login_fields input[type='text'] {
            color: #61BFFF !important;
        }
        body .login_fields input[type='text'], body .login_fields input[type='password'] {
            color: #afb1be;
            width: 190px;
            margin-top: -5px;
            background: rgba(57, 61, 82, 0);
            left: 0;
            padding: 13px 65px;
            border-top: 2px solid rgba(57, 61, 82, 0);
            border-bottom: 2px solid rgba(57, 61, 82, 0);
            border-right: none;
            border-left: none;
            outline: none;
            font-family: 'Gudea', sans-serif;
            box-shadow: none;
            font-size: 16px;
        }
        body .login_fields__user, body .login_fields__password {
            position: relative;
        }
        body .login_fields__submit {
            position: relative;
            top: 17px;
            left: 70px;
            width: 80%;
            right: 0;
            margin: auto;
        }
        body .login_fields__submit .forgot {
            float: right;
            font-size: 10px;
            margin-top: 11px;
            text-decoration: underline;
        }
        body .login_fields__submit .forgot a {
            color: #606479;
        }
        body .login_fields__submit input {
            border-radius: 50px;
            background: transparent;
            padding: 10px 50px;
            border: 2px solid #4FA1D9;
            color: #4FA1D9;
            text-transform: uppercase;
            font-size: 14px;
            -webkit-transition-property: background,color;
            transition-property: background,color;
            -webkit-transition-duration: .2s;
            transition-duration: .2s;
        }
        body .login_fields__submit input:focus {
            box-shadow: none;
            outline: none;
        }
        body .login_fields__submit input:hover {
            color: white;
            background: #4FA1D9;
            cursor: pointer;
            -webkit-transition-property: background,color;
            transition-property: background,color;
            -webkit-transition-duration: .2s;
            transition-duration: .2s;
        }

        /* Color Schemes */
        .love {
            position: absolute;
            right: 20px;
            bottom: 0px;
            font-size: 11px;
            font-weight: normal;
        }
        .love p {
            color: white;
            font-weight: normal;
            font-family: 'Open Sans', sans-serif;
        }
        .love a {
            color: white;
            font-weight: 700;
            text-decoration: none;
        }
        .love img {
            position: relative;
            top: 3px;
            margin: 0px 4px;
            width: 10px;
        }

        .brand {
            position: absolute;
            left: 20px;
            bottom: 14px;
        }
        .brand img {
            width: 30px;
        }
    </style>

</head>

<body>
    <div class='login'>
        <div class='login_title'>
            <span>管理员登录</span>
        </div>
        <div class='login_fields'>
            <div class='login_fields__user'>
                <div class='icon'>
                   <img src="http://repo.bfw.wiki/bfwrepo/icon/5df4a6cf498ab.png" alt="" />
                </div>
                <input name="login" placeholder='用户名' maxlength="16" type='text' autocomplete="off" value="admin" />
                <div class='validation'>
                 
                </div>
            </div>
            <div class='login_fields__password'>
                <div class='icon'>
                    <img alt="" src='http://repo.bfw.wiki/bfwrepo/icon/5df4a6dc04f4f.png'>
                </div>
                <input name="pwd" placeholder='密码' maxlength="16" type='text' autocomplete="off">
                <div class='validation'>
                  
                </div>
            </div>
            <div class='login_fields__password'>
                <div class='icon'>
                     <img alt="" src='http://repo.bfw.wiki/bfwrepo/icon/5df4a6e993a23.png' />
                </div>
                <input name="code" placeholder='验证码' maxlength="4" type='text' name="ValidateNum" autocomplete="off">
                <div class='validation' style="opacity: 1; right: -5px;top: -3px;">
                   
                </div>
            </div>
            <div class='login_fields__submit'>
                <input type='button' value='登录'>
            </div>
        </div>
        <div class='success'>
        </div>
        <div class='disclaimer'>
            <p>
                欢迎登陆后台管理系统
            </p>
        </div>
    </div>
    <div class='authent'>
        <div class="loader" style="height: 44px;width: 44px;margin-left: 28px;">
            <div class="loader-inner ball-clip-rotate-multiple">
                <div></div>
                <div></div>
                <div></div>
            </div>
        </div>
        <p>
            认证中...
        </p>
    </div>
    <div class="OverWindows"></div>

    <script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/ThreeWebGL.js"></script>
    <script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/ThreeExtras.js"></script>
    <script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/Detector.js"></script>
    <script type="text/javascript" src="http://repo.bfw.wiki/bfwrepo/js/RequestAnimationFrame.js"></script>
    <script id="vs" type="x-shader/x-vertex">
        varying vec2 vUv; void main() {
            vUv = uv; gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
        }
    </script>
    <script id="fs" type="x-shader/x-fragment">
        uniform sampler2D map; uniform vec3 fogColor; uniform float fogNear; uniform float fogFar; varying vec2 vUv; void main() {
            float depth = gl_FragCoord.z / gl_FragCoord.w; float fogFactor = smoothstep(fogNear, fogFar, depth); gl_FragColor = texture2D(map, vUv); gl_FragColor.w *= pow(gl_FragCoord.z, 20.0); gl_FragColor = mix(gl_FragColor, vec4(fogColor, gl_FragColor.w), fogFactor);
        }

    </script>


    
    <script type="text/javascript">
        if (!Detector.webgl) Detector.addGetWebGLMessage();
        var canvas = document.createElement('canvas');
        canvas.width = 32;
        canvas.height = window.innerHeight;
        var context = canvas.getContext('2d');
        var gradient = context.createLinearGradient(0, 0, 0, canvas.height);
        gradient.addColorStop(0, "#1e4877");
        gradient.addColorStop(0.5, "#4584b4");
        context.fillStyle = gradient;
        context.fillRect(0, 0, canvas.width, canvas.height);
        document.body.style.background = 'url(' + canvas.toDataURL('image/png') + ')';
        var container;
        var camera, scene, renderer, sky, mesh, geometry, material, i, h, color, colors = [],
        sprite, size, x, y, z;
        var mouseX = 0,
        mouseY = 0;
        var start_time = new Date().getTime();
        var windowHalfX = window.innerWidth / 2;
        var windowHalfY = window.innerHeight / 2;
        init();
        animate();

        function init() {
            container = document.createElement('div');
            document.body.appendChild(container);
            camera = new THREE.Camera(30, window.innerWidth / window.innerHeight, 1, 3000);
            camera.position.z = 6000;
            scene = new THREE.Scene();
            geometry = new THREE.Geometry();
            var texture = THREE.ImageUtils.loadTexture('');
            texture.magFilter = THREE.LinearMipMapLinearFilter;
            texture.minFilter = THREE.LinearMipMapLinearFilter;
            var fog = new THREE.Fog(0x4584b4, -100, 3000);
            material = new THREE.MeshShaderMaterial({
                uniforms: {
                    "map": {
                        type: "t",
                        value: 2,
                        texture: texture
                    },
                    "fogColor": {
                        type: "c",
                        value: fog.color
                    },
                    "fogNear": {
                        type: "f",
                        value: fog.near
                    },
                    "fogFar": {
                        type: "f",
                        value: fog.far
                    },
                },
                vertexShader: document.getElementById('vs').textContent,
                fragmentShader: document.getElementById('fs').textContent,
                depthTest: false
            });
            var plane = new THREE.Mesh(new THREE.Plane(64, 64));
            for (i = 0; i < 8000; i++) {
                plane.position.x = Math.random() * 1000 - 500;
                plane.position.y = -Math.random() * Math.random() * 200 - 15;
                plane.position.z = i;
                plane.rotation.z = Math.random() * Math.PI;
                plane.scale.x = plane.scale.y = Math.random() * Math.random() * 1.5 + 0.5;
                GeometryUtils.merge(geometry, plane)
            }
            mesh = new THREE.Mesh(geometry, material);
            scene.addObject(mesh);
            mesh = new THREE.Mesh(geometry, material);
            mesh.position.z = -8000;
            scene.addObject(mesh);
            renderer = new THREE.WebGLRenderer({
                antialias: false
            });
            renderer.setSize(window.innerWidth, window.innerHeight);
            container.appendChild(renderer.domElement);
            document.addEventListener('mousemove', onDocumentMouseMove, false);
            window.addEventListener('resize', onWindowResize, false)
        }

        function onDocumentMouseMove(event) {
            mouseX = (event.clientX - windowHalfX) * 0.25;
            mouseY = (event.clientY - windowHalfY) * 0.15
        }

        function onWindowResize(event) {
            camera.aspect = window.innerWidth / window.innerHeight;
            camera.updateProjectionMatrix();
            renderer.setSize(window.innerWidth, window.innerHeight)
        }

        function animate() {
            requestAnimationFrame(animate);
            render()
        }

        function render() {
            position = ((new Date().getTime() - start_time) * 0.03) % 8000;
            camera.position.x += (mouseX - camera.target.position.x) * 0.01;
            camera.position.y += (-mouseY - camera.target.position.y) * 0.01;
            camera.position.z = -position + 8000;
            camera.target.position.x = camera.position.x;
            camera.target.position.y = camera.position.y;
            camera.target.position.z = camera.position.z - 1000;
            renderer.render(scene, camera)
        }
    </script>
</body>

</html>